package com.zhangjun.util;

import java.math.BigDecimal;

/**
 * @author 张钧
 * @Description
 * @create 2022-09-20 20:16
 */
public class BigDecimalUtils {
	/**
	 * @return 第一个值是否小于第二个值
	 */
	public static boolean lt(BigDecimal first, BigDecimal second){
		return first.compareTo(second) == -1;
	}

	/**
	 * @return 第一个值是否小于等于第二个值
	 */
	public static boolean le(BigDecimal first,BigDecimal second){
		return lt(first,second) || eq(first,second);
	}

	/**
	 * @return 第一个值是否大于第二个值
	 */
	public static boolean gt(BigDecimal first,BigDecimal second){
		return first.compareTo(second) == 1;
	}

	/**
	 * @return 第一个值是否大于等于第二个值
	 */
	public static boolean ge(BigDecimal first,BigDecimal second){
		return gt(first,second) || eq(first,second);
	}

	/**
	 * @return 第一个值是否不等于第二个值
	 */
	public static boolean ne(BigDecimal first,BigDecimal second){
		return !eq(first,second);
	}

	/**
	 * @return 第一个值是否等于第二个值
	 */
	public static boolean eq(BigDecimal first,BigDecimal second){
		return first.compareTo(second) == 0;
	}

	/**
	 * 返回是否在这个区间
	 * @param start 区间起点
	 * @param includedStart 是否包括起点
	 * @param end 区间终点
	 * @param includedEnd 是否包括终点
	 */
	public static boolean between(BigDecimal first,BigDecimal start,boolean includedStart,BigDecimal end,boolean includedEnd){
		boolean result;
		if(includedStart){
			result = le(start,first);
		}else {
			result = lt(start,first);
		}
		if(includedEnd){
			result = result && ge(end,first);
		}else {
			result = result && gt(end,first);
		}
		return result;
	}


}
